home *** CD-ROM | disk | FTP | other *** search
/ Fritz: All Fritz / All Fritz.zip / All Fritz / FILES / BUSINESS / STATA3.LZH / INTRO.TUT < prev    next >
Text File  |  1988-08-30  |  13KB  |  380 lines

  1. set output error
  2. set display page 23
  3. set more 1
  4. #delimit ;
  5.  
  6. di _n(5) in wh
  7. "  ___  ____  ____  ____  ____ tm" _n
  8. " /__    /   ____/   /   ____/" _n
  9. "___/   /   /___/   /   /___/    A First Session" _n
  10. "-----------------------------------------------" _n(2) ;
  11.  
  12. di in gr
  13. "In this tutorial, we will simulate a Stata session.  Instead of you entering"
  14. _n
  15. "commands, Stata will read its instructions from disk." _n(2)
  16. "This tutorial can be discontinued at any time by pressing "
  17. in wh "Break" in gr "---on a PC," _n
  18. "hold down "
  19. in wh "Ctrl" in gr " and press " in wh "Break"
  20. in gr "; under Unix, hold down " in wh "Ctrl" in gr " and press "
  21. in wh "C" in gr "." _n
  22. "This will cause the Stata period prompt to appear and Stata will await your" _n
  23. "next command." _n(9) ;
  24.  
  25. #delimit cr
  26. mac def path
  27. capture run nullfile.tut
  28. if _rc {
  29.     mac def path "\stata\"
  30.     capture run %path`nullfile.tut
  31.     if _rc {
  32.         mac def path "/usr/stata/"
  33.         capture run %path`nullfile.tut
  34.         if _rc {
  35.             #delimit ;
  36.             di in red
  37. "I cannot find the other tutorial files.  I have looked in the current" _n
  38. "directory and in \stata (DOS) or /usr/stata (Unix).  Is Stata installed" _n
  39. "correctly?" _n(2)
  40. "In any case, I cannot run the tutorial." ;
  41.             #delimit cr
  42.             exit
  43.         }
  44.     }
  45. }
  46. macro define F5 "do %path`contents.tut;"
  47. macro define F6 "do %path`intro.tut;"
  48. #delimit ;
  49.  
  50. di in gr
  51. "When you are ready to continue, press the space bar." ;
  52.  
  53. set more 0; more ; set more 1;
  54.  
  55.  
  56. drop _all ;
  57. label drop _all ;
  58.  
  59. di in wh _n(4)
  60. "Sample session" _n
  61. "--------------" _n(2) ;
  62.  
  63. di in gr
  64. "We have told Stata to read commands from disk rather than from the keyboard,"
  65. _n
  66. "but we have prerecorded only half of this session.  Everything we type is" _n
  67. "prerecorded.  Stata's responses are not.  Stata is obtaining its input from"
  68. _n
  69. "the disk, but is producing results as you watch.  This is true of all of our"
  70. _n
  71. "tutorials." _n ;
  72.  
  73. di in gr
  74. "Stata has extensive on-line help.  When we type '"
  75. in wh "help" in gr "' after the Stata period" _n
  76. "prompt, we are issuing a command.  Let's see how Stata responds:" _n(10)
  77. in wh ". help" ;
  78. set more 0 ; more ; set more 1 ;
  79. noisily help ;
  80. set more 0 ; more ;  set more 1 ;
  81.  
  82. di in gr _n(2)
  83. _dup(79) in wh "-" in gr _n
  84. "Stata suggests that we type '"
  85. in wh "help help"
  86. in gr "' for more information on how to use" _n
  87. "the help system.  We won't do that; we'll leave it for you to try on your" _n
  88. "own." _n ;
  89.  
  90. di in gr
  91. "Instead, we want to use some data we've already entered and stored on disk." _n
  92. "The data is called auto.dta and the command to load previously stored data" _n
  93. "is "
  94. in wh "use"
  95. in gr ".  We could learn more about the "
  96. in wh "use" in gr " command by typing '"
  97. in wh "help use" in gr "'." _n
  98. in gr "We'll leave that for you to try, too." _n
  99. _dup(79) in wh "-" _n ;
  100.  
  101. di in wh ". use %path`auto" ;
  102. noisily use %path`auto ;
  103.  
  104. di _n(2)
  105. in wh _dup(79) "-" _n
  106. in gr
  107. "We can find out what's in the data by asking Stata to "
  108. in wh "describe" in gr " it:" _n
  109. in wh _dup(79) "-" _n(2)
  110. ". describe" ;
  111. set more 0 ; more ; set more 1 ;
  112. noisily describe ;
  113. di ; set more 0 ; more ; set more 1 ;
  114.  
  115. di _n _dup(79) in wh "-" in gr _n
  116. "We can also look at some of the data.  Below, we ask Stata to "
  117. in wh "list" in gr " the first" _n
  118. "observation:" _n
  119. in wh _dup(79) "-" _n(2)
  120. ". list in 1" ;
  121. noisily list in 1 ;
  122.  
  123. di _n(2) _dup(79) in wh "-" in gr _n
  124. "There's much more in this data than we are going to use in this short demon-"
  125. _n
  126. "stration, so to make it easier for you to follow along, we now "
  127. in wh "drop" in gr " the ir-" _n
  128. "relevant variables:" _n
  129. in wh _dup(79) "-" _n(2)
  130. ". drop mpg hdroom runk length turn displ gratio" ;
  131.  
  132. noisily drop mpg hdroom trunk length turn displ gratio ;
  133. di ; set more 0 ; more ; set more 1 ;
  134.  
  135. di _n _dup(79) in wh "-" in gr _n
  136. "Using " in wh "describe" in gr " and " in wh "list"
  137. in gr ", we can see what's left:" _n
  138. in wh _dup(79) "-" _n(2)
  139. ". describe" ;
  140.  
  141. noisily describe ;
  142.  
  143. di in wh _n ". list in 1" ;
  144. noisily list in 1 ;
  145. di ; set more 0 ; more ; set more 1 ;
  146.  
  147. di _n _dup(79) in wh "-" in gr _n
  148. "The variable rep78 is the Consumer's Report repair rating.  For the AMC" _n
  149. "Concord we see that its value is 3.  We can find out more about rep78 across"
  150. _n
  151. "all observations by " in wh "summariz" in gr "ing it:" _n
  152. in wh _dup(79) "-" _n(2)
  153. ". summarize rep78" ;
  154. noisily summarize rep78 ;
  155.  
  156. di _n _dup(79) in wh "-" in gr _n
  157. "The variable assumes the values 1 through 5.  For your information, 1 is the"
  158. _n
  159. "poorest rating and 5 is the best.  "
  160. in wh "summarize" in gr " tells us the mean, standard de-"
  161. _n
  162. "viation, minimum, and maximum.  For this kind of categorical variable, a full"
  163. _n
  164. "tabulation may be more revealing:" _n
  165. in wh _dup(79) "-" _n(2)
  166. ". tabulate rep78, plot" ;
  167. set more 0 ; more ; set more 1 ;
  168. noisily tabulate rep78, plot ;
  169.  
  170. di _n(2) _dup(79) in wh "-" in gr _n
  171. "Sometimes, just listing data can be informative.  For instance, let's "
  172. in wh "list" _n in gr
  173. "the cars with the worst repair report:" _n
  174. in wh _dup(79) "-" _n(2)
  175. ". list if rep78==1" ;
  176. noisily list if rep78==1 ;
  177. di ;
  178. set more 0 ; more ; set more 1 ;
  179.  
  180. di _n _dup(79) in wh "-" in gr _n
  181. "Next, we " in wh "list" in gr " the cars with the best repair record:" _n
  182. in wh _dup(79) "-" _n(2)
  183. ". list if rep78==5" ;
  184. noisily list if rep78==5 ;
  185. di ; set more 0 ; more ; set more 1 ;
  186.  
  187. di _n _dup(79) in wh "-" in gr _n
  188. "Perhaps you noticed that this last list is dominated by foreign cars.  Do" _n
  189. "domestic and foreign cars have different repair records on average?  The" _n
  190. "data contains a variable called 'foreign' which takes on the value 1 if a" _n
  191. "a car is foreign and 0 otherwise.  We can use that variable to answer the" _n
  192. "question by making separate tabulations for each kind of car:" _n
  193. in wh _dup(79) "-" _n(2)
  194. ". tabulate rep78 foreign" ;
  195. noisily tabulate rep78 foreign ;
  196. di ; set more 0 ; more ; set more 1 ;
  197.  
  198. di _n(3) _dup(79) in wh "-" in gr _n
  199. "It would be easier to understand this data if the tabulation included the" _n
  200. "column percent, i.e., the percent each repair category is of the overall:" _n
  201. in wh _dup(79) "-" _n(2)
  202. ". tabulate rep78 foreign, column" ;
  203. set more 0 ; more ; set more 1 ;
  204. noisily tabulate rep78 foreign, column ;
  205. di ; set more 0 ; more ; set more 1 ;
  206.  
  207. di _n _dup(79) in wh "-" in gr _n
  208. "Perhaps we want to show only the column percent (i.e., suppress the actual" _n
  209. "count), and we want to add the chi-square statistic comparing domestic and" _n
  210. "foreign cars:" _n
  211. in wh _dup(79) "-" _n(2)
  212. ". tabulate rep78 foreign, column nofreq chi2" ;
  213. noisily tabulate rep78 foreign, column nofreq chi2 ;
  214. di ; set more 0 ; more ; set more 1 ;
  215.  
  216. di _n _dup(79) in wh "-" in gr _n
  217. "Often there is more than one way to measure the same thing.  In this case," _n
  218. "we could also compare the mean repair records of domestic and foreign cars:" _n
  219. in wh _dup(79) "-" _n(2)
  220. ". tabulate foreign, summarize(rep78)" ;
  221. noisily tabulate foreign, summarize(rep78) ;
  222.  
  223. di _n _dup(79) in wh "-" in gr _n
  224. "There are two other variables we are going to look at during this demonstra-"
  225. _n
  226. "tion:  weight and price of car.  What is the relationship between them?  One"
  227. _n
  228. "way to get a quick answer is simply to "
  229. in wh "graph" in gr " one against the other." _n ;
  230.  
  231. di in gr
  232. "(If you do not have a graphics monitor, this next command won't do anything.)"
  233. _n
  234. in wh _dup(79) "-" _n ;
  235. di in wh ". graph weight price" ;
  236. set more 0 ; more ;
  237. noisily graph weight price ;
  238. set more 1 ;
  239. di _n _dup(79) in wh "-" in gr _n
  240. "The graph revealed that weight increases with price." _n
  241. in wh _dup(79) "-" _n(4) ;
  242.  
  243. di _dup(79) in wh "-" in gr _n
  244. "For those of you who do not have a graphics monitor, Stata also provides a" _n
  245. "low-resolution "
  246. in wh "plot" in gr " command:" _n
  247. in wh _dup(79) "-" _n(2) ;
  248. di in wh ". plot weight price" ;
  249. set more 0 ; more ; set more 1 ;
  250. noisily plot weight price ;
  251. set more 0 ; more ; set more 1 ;
  252.  
  253. di _n(9) _dup(79) in wh "-" in gr _n
  254. "In both cases, the graphs revealed that weight increases with price.  We" _n
  255. "can also calculate the correlation coefficient between weight and price;" _n
  256. "we expect it to be positive:" _n
  257. in wh _dup(79) "-" _n(2)
  258. ". correlate weight price" ;
  259. noisily correlate weight price ;
  260. di; set more 0 ; more ; set more 1 ;
  261.  
  262. di _n _dup(79) in wh "-" in gr _n
  263. "Going further, we can run a regression of weight against price:" _n
  264. in wh _dup(79) "-" _n(2)
  265. ". regress weight price" ;
  266. noisily regress weight price ;
  267. di ; set more 0 ; more ; set more 1 ;
  268.  
  269. di _n(2) _dup(79) in wh "-" in gr _n
  270. "We can easily retrieve the residuals from this regression.  We tell Stata" _n
  271. "to create a new variable, we'll call it 'resid', defined as the true value" _n
  272. "('weight') minus the predicted value from the regression:" _n
  273. in wh _dup(79) "-" _n(2)
  274. ". predict resid, residual" ;
  275. noisily predict resid, residual ;
  276.  
  277. di _n(2) _dup(79) in wh "-" in gr _n
  278. "After running a regression, Stata stores the names of the variables and" _n
  279. "their coefficients.  "
  280. in wh "predict" in gr " uses that information, along with the data," _n
  281. "to construct predictions, residuals, and even influence statistics.  Here" _n
  282. "we retrieve the residual." _n ;
  283.  
  284. di in gr
  285. "Remember that we found a difference between domestic and foreign repair" _n
  286. "records.  Does that difference carry over to the weight/price relation-" _n
  287. "ship as well?" _n
  288. in wh _dup(79) "-" _n(3)
  289. "by foreign: summarize weight price resid" ;
  290. set more 0 ; more ; set more 1 ;
  291. noisily by foreign: summarize weight price resid ;
  292. di ; set more 0 ; more ; set more 1 ;
  293.  
  294. di _n _dup(79) in wh "-" in gr _n
  295. "The summary above indicates that it does.  The average domestic car's re-" _n
  296. "sidual is positive whereas the average foreign car's is negative." _n
  297. in wh _dup(79) "-" _n ;
  298. set more 0 ; more ; set more 1 ;
  299.  
  300.  
  301. di _n(2) _dup(79) in wh "-" in gr _n
  302. "Let's graph weight against price using separate symbols for each variable." _n
  303. "We must create two new variables.  One will take on the weight of domestic" _n
  304. "cars and missing value otherwise, whereas the other will take on the weight" _n
  305. "of foreign cars and missing value otherwise." _n
  306. in wh _dup(79) "-" _n(2)
  307. ". generate weightd = weight if ~foreign" ;
  308. noisily generate weightd=weight if ~foreign ;
  309. di _n in wh ". generate weightf = weight if foreign" ;
  310. noisily generate weightf=weight if foreign ;
  311.  
  312. label var weightd "Weight of domestic cars" ;
  313. label var weightf "Weight of foreign cars" ;
  314.  
  315. di _n(4) _dup(79) in wh "-" in gr _n
  316. "Next, we do our plot; first the version for those with graphic monitors:" _n
  317. in wh _dup(79) "-" _n(2)
  318. ". graph weightd weightf price" ;
  319. set more 0 ; more ;
  320. noisily graph weightd weightf price ;
  321. set more 1 ;
  322.  
  323. di _n _dup(79) in wh "-" in gr _n
  324. "You saw the domestic weight plotted as small circles and the foreign weight" _n
  325. "as triangles." _n
  326. in wh _dup(79) "-" _n(2) ;
  327.  
  328. di _n(3) _dup(79) in wh "-" in gr _n
  329. "And now the version for those without graphic monitors:" _n
  330. in wh _dup(79) "-" _n(2)
  331. ". plot weightd weightf price" ;
  332. set more 0 ; more ; set more 1 ;
  333. noisily plot weightd weightf price ;
  334. set more 0 ; more ; set more 1 ;
  335.  
  336. di _n _dup(79) in wh "-" in gr _n
  337. "You saw the domestic weights plotted as A's and the foreign weights as B's."
  338. _n(2)
  339. "In either case, the graphs show that domestic car weights are almost uniformly"
  340. _n
  341. "above the foreign car weights at the same price." _n
  342. in wh _dup(79) "-" _n(9) ;
  343.  
  344. di _n(2) _dup(79) in wh "-" in gr _n
  345. "For those with graphic monitors, here's another way of seeing the same thing."
  346. _n
  347. in wh _dup(79) "-" _n(2)
  348. ". graph price weight, by(foreign) total" ;
  349. set more 0 ; more ;
  350. noisily graph price weight, by(foreign) total ;
  351. set more 1 ;
  352.  
  353. di _n(8) _dup(79) in wh "-" in gr _n
  354. "We can rerun the regression and include an indicator variable for foreign" _n
  355. "cars to find out if the difference is significant." _n
  356. in wh _dup(79) "-" _n(2)
  357. ". regress weight price foreign" ;
  358. set more 0 ; more ; set more 1 ;
  359. noisily regress weight price foreign ;
  360. set more 0 ; more ; set more 1 ;
  361.  
  362. di _n(4) in wh
  363. "Demonstration ends" _n
  364. "------------------" _n ;
  365.  
  366. macro define F6 "do %path`graphics.tut;" ;
  367.  
  368. di in gr
  369. "That concludes our short demonstration, but there's much more.  We now return"
  370. _n
  371. "control to you.  Some suggestions:" _n ;
  372.  
  373. di in gr
  374. "If you ..." _col(34) "Then we will show you ..." _n
  375. "    Press " in wh "F5" in gr _col(38) "a table of tutorial contents" _n
  376. "    Press " in wh "F6" in gr _col(38) "the next tutorial, "
  377. in wh "graphics.tut" _n ;
  378.  
  379. run %path`tobuy.tut ;
  380.